IMPREG page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
IMPREG page# 0002 next prev
50: SUBTTL IMP SERVICE - REGULAR MESSAGE HANDLING
51:
52:
53: REGULAR:
54: LDB AC2,ELINKP
55: TRNN AC2,377
56: JRST L0REG
57: SKIPN AC3,FFLNK
58: JRST RMUNL
59: SETZ DAT,
60: REGFRL: CAMN AC2,LNKTAB-1(AC3)
61: JRST REGCRS
62: REGINC: SOJG AC3,REGFRL
63: JUMPE DAT,UNL
64: RMUNL: TELCTR(RWNOSS,<INPUT WITH NO RECEIVE SIDE>)
65: JRST PSCAN
66:
67: IWCNO: TELCTR(NIWCNO,<INPUT WITH CONNECTION NOT ENTIRELY OPEN>)
68: JRST PSCAN
IMPREG page# 0003 next prev
70:
71:
72: REGCRS: MOVE TEM,IMPLS-1(AC3)
73: MOVEI DAT,(AC3)
74: TRNE TEM,1
75: JRST REGINC
76: MOVE AC2,IMPSTB-1(AC3)
77: TLC AC2,RFCR!RFCS
78: TLNE AC2,RFCR!RFCS
79: JRST IWCNO
80: SKIPN DDB,IMPDDB-1(AC3)
81: JRST NODDB
82: MOVE IOS,DEVIOS(DDB)
83: TLZE IOS,INPW
84: PUSHJ P,QRUN
85: MOVEM IOS,DEVIOS(DDB)
86: MOVSI AC2,INTINP
87: PUSHJ P,INTCOM
88: LDB AC2,SIZEP
89: LDB AC3,COUNTP
90: IMULI AC2,(AC3)
91: ADDM AC2,BIIL(DDB)
92: MOVNS AC2
93: ADDM AC2,HBA(DDB)
94: AOS MIIL(DDB)
95: SOSL HMA(DDB)
96: SKIPGE HBA(DDB)
97: JRST CTROVF
98: PUSHJ P,UNLNS
99: SKIPN AC2,INL(DDB)
100: JRST REG1
101: MOVSS AC2
102: HRLM AC1,TLINK(AC2)
103: REG2: HRLM AC1,INL(DDB)
104: HRRZS TLINK(AC1)
105: JRST IMPCLK
106:
107: REG1: HRRM AC1,INL(DDB)
108: JRST REG2
IMPREG page# 0004 next prev
110:
111:
112: CTROVF: ORI IOS,CTROV!IODERR
113: MOVEM IOS,DEVIOS(DDB)
114: PUSH P,AC1
115: PUSHJ P,MAKERB
116: PUSHJ P,CLKWAIT
117: PUSHJ P,OFILL
118: MOVEI AC3,CTO
119: DPB AC3,BYTE3P
120: PUSHJ P,CLKOUT
121: POP P,AC1
122: JRST PSCAN
123:
124:
125:
126: SLUNL: TELCTR(SLUNLK,<UNKNOWN LINK IN REGULAR MESSAGE>)
127: PUSHJ P,UNLMER
128: JRST L0XIT
IMPREG page# 0005 next prev
130:
131:
132: L0REG: LDB AC3,SIZEP
133: CAIE AC3,10
134: JRST ILLBS
135: MOVEI AC3,(AC1)
136: HRLI AC3,441000
137: ADDI AC3,TDATA+2
138: MOVEM AC3,TBP(AC1)
139: L0MORE: ILDB DSER,TBP(AC1)
140: CAIL DSER,OPMAX
141: JRST RILLO
142: LDB AC3,COUNTP
143: LDB TAC,[POINT 9,OPTAB(DSER),8]
144: CAIL AC3,(TAC)
145: JRST L0CDSP
146: TELCTR(BCMM,<SHORT CONTROL COMMAND>)
147: PUSH P,AC1
148: PUSHJ P,MAKERB
149: PUSHJ P,CLKWAIT
150: PUSHJ P,EFILL
151: MOVEI AC3,SPS
152: RERR1: DPB AC3,BYTE2P
153: RERR2: PUSHJ P,CLKOUT
154: POP P,AC1
155: JRST PSCAN
156:
157: L0CDSP: SUBI AC3,(TAC)
158: DPB AC3,COUNTP
159: JRST @OPTAB(DSER)
160:
161: L0XIT: HRRZ AC1,ILIST
162: LDB AC2,COUNTP
163: JUMPE AC2,PSCAN
164: JRST L0MORE
IMPREG page# 0006 next prev
166:
167:
168: RILLO: SKIPE RECOVER
169: JRST PSCAN
170: SETOM RECOVER
171: TELCTR(NILLOP,<ILLEGAL OPCODE>)
172: PUSH P,AC1
173: PUSHJ P,MAKERB
174: PUSHJ P,CLKWAIT
175: PUSHJ P,EFILL
176: MOVEI AC3,ILO
177: JRST RERR1
178:
179: ILLBS: SKIPE RECOVER
180: JRST PSCAN
181: SETOM RECOVER
182: TELCTR(BSILL,<ILLEGAL BYTE SIZE ON CONTROL COMMAND>)
183: PUSH P,AC1
184: PUSHJ P,MAKERB
185: PUSHJ P,CLKWAIT
186: PUSHJ P,OFILL
187: MOVEI AC3,ILB
188: DPB AC3,BYTE3P
189: JRST RERR2
IMPREG page# 0007 next prev
191:
192:
193: DEFINE Z (LENGTH,DSP) <XWD LENGTH*1000,DSP>
194:
195: OPTAB: Z(1,SNOPCN)
196: Z(12,IRTS)
197: Z(12,ISTR)
198: Z(11,ICLS)
199: Z(10,IALL)
200: Z(4,IGVB)
201: Z(10,IRET)
202: Z(2,IINR)
203: Z(2,IINS)
204: Z(2,IECO)
205: Z(2,IERP)
206: Z(14,IERR)
207: Z(1,IRST)
208: Z(1,IRRP)
209:
210: OPMAX←←.-OPTAB
IMPREG page# 0008 next prev
212:
213:
214: IALL: PUSHJ P,COMDDS
215: JRST SLUNL
216: JRST RD6NSE
217: JRST RD6CC
218: PUSHJ P,RD2B
219: ADDM AC2,MAL(DDB)
220: PUSHJ P,RD4B
221: ADDM AC2,BAL(DDB)
222: MOVE IOS,DEVIOS(DDB)
223: TLZE IOS,ALLW
224: PUSHJ P,QRUN
225: MOVEM IOS,DEVIOS(DDB)
226: JRST L0XIT
227:
228:
229:
230: IRET: PUSHJ P,COMDDR
231: JRST SLUNL
232: JRST RD6NSE
233: JRST RD6CC
234: PUSHJ P,RD2B
235: MOVNS AC2
236: ADDM AC2,HMA(DDB)
237: PUSHJ P,RD4B
238: MOVNS AC2
239: ADDM AC2,HBA(DDB)
240: JRST L0XIT
IMPREG page# 0009 next prev
242:
243:
244: SNOPCN: AOS SLNOPS
245: JRST L0XIT
246:
247:
248:
249: RD6NSE: PUSHJ P,RD4B
250: RD2NSE: PUSHJ P,RD2B
251: RCCANS: TELCTR(NSSC,<NO SEND-SIDE CONNECTION>)
252: JRST L0XIT
253:
254: RD6CC: PUSHJ P,RD4B
255: RD2CC: PUSHJ P,RD2B
256: AOS NALWNC
257: JRST L0XIT
IMPREG page# 0010 next prev
259:
260:
261: IGVB: PUSHJ P,COMDDS
262: JRST RD2NSE
263: JRST RD2CC
264: JRST SLUNL
265: ILDB AC2,TBP(AC1)
266: CAILE AC2,200
267: MOVEI AC2,200
268: IMUL AC2,MAL(DDB)
269: TRNE AC2,177
270: ADDI AC2,200
271: LSH AC2,-7
272: PUSH P,AC2
273: MOVNS AC2
274: ADDM AC2,MAL(DDB)
275:
276: ILDB AC2,TBP(AC1)
277: CAILE AC2,200
278: MOVEI AC2,200
279: IMUL AC2,BAL(DDB)
280: TRNE AC2,177
281: ADDI AC2,200
282: LSH AC2,-7
283: PUSH P,AC2
284: MOVNS AC2
285: ADDM AC2,BAL(DDB)
IMPREG page# 0011 next prev
287:
288:
289: PUSH P,AC1
290: PUSHJ P,IMPGET
291: PUSHJ P,CLKWAIT
292: POP P,AC2
293: MOVE AC2,TDATA(AC2)
294: MOVEM AC2,TDATA(AC1)
295: SETZM TDATA+1(AC1)
296: SETZM TDATA+2(AC1)
297: MOVEI AC3,10
298: DPB AC3,SIZEP
299: DPB AC3,COUNTP
300: MOVEI AC3,RET
301: DPB AC3,OPCDP
302: LDB AC3,[POINT 8,TDATA+2(AC2),15]
303: DPB AC3,OLINKP
304: POP P,AC3
305: LSH AC3,4
306: MOVEM AC3,TDATA+3(AC1)
307: POP P,AC3
308: DPB AC3,[POINT 16,TDATA+2(AC2),31]
309: MOVEI AC3,4
310: MOVEM AC3,TWC(AC1)
311: PUSHJ P,CLKOUT
312: JRST L0XIT
IMPREG page# 0012 next prev
314:
315:
316: IINR: PUSHJ P,COMDDS
317: JRST SLUNL
318: JRST RCCANS
319: JRST L0XIT
320: MOVSI AC2,INTINR
321: ORM AC2,IMPSTB-1(AC3)
322: PUSHJ P,INTCOM
323: JRST L0XIT
324:
325: IINS: PUSHJ P,COMDDR
326: JRST SLUNL
327: JRST RCCANS
328: JRST L0XIT
329:
330: MOVSI AC2,INTINS
331: ORM AC2,IMPSTB-1(AC3)
332: PUSHJ P,INTCOM
333: JRST L0XIT
IMPREG page# 0013 next prev
335:
336:
337: XTTIME←←TDATA
338: SOCK1←←TDATA+1
339: SOCK2←←TDATA+2
340:
341: IRTS:
342: ISTR: PUSHJ P,RD4B
343: MOVE UUO,AC2
344: PUSHJ P,RD4B
345: MOVE JDAT,AC2
346: SKIPN AC3,FFLNK
347: JRST MAKPND
348: ISTRL: CAMN AC2,IMPLS-1(AC3)
349: JRST ISTRFS
350: SOJG AC3,ISTRL
351: MAKPND: AOS AC3,FFLNK
352: CAILE AC3,MAXNLK
353: JRST NOLNK
354: SETZM IMPDDB-1(AC3)
355: MOVEM AC2,IMPLS-1(AC3)
356: MOVEM UUO,IMPFS-1(AC3)
357: SETZM IMPRFQ-1(AC3)
358: PUSHJ P,SETHLB
359: MAKPN: PUSHJ P,IMPGET
360: PUSHJ P,CLKWAIT
361: MOVEM JDAT,SOCK2(AC1)
362: MOVEM UUO,SOCK1(AC1)
363: HRLI AC1,PNDG
364: CONO PI,PIOFF
365: IDPB AC1,CLKQ
366: CONO PI,PION
367: MOVEI AC2,4*=60*JIFSEC
368: MOVEM AC2,XTTIME(AC1)
369: MOVSI AC2,RFCR!ANYC
370: MOVEM AC2,IMPSTB-1(AC3)
371: JRST L0XIT
IMPREG page# 0014 next prev
373:
374:
375: SETHLB: LDB AC2,SRCP
376: DPB AC2,[POINT 8,LNKTAB-1(AC3),27]
377: ILDB AC2,TBP(AC1)
378: SETHB: CAIN DSER,STR
379: MOVEM AC2,IMPBS-1(AC3)
380: CAIN DSER,RTS
381: DPB AC2,[POINT 8,LNKTAB-1(AC3),35]
382: POPJ P,
383:
384:
385:
386: NOLNK: IBP TBP(AC1)
387: PUSHJ P,RTNCLS
388: SOS FFLNK
389: TELCTR(NNOLNK,<RFC RECEIVED BUT NOT LINK AVAILABLE>)
390: JRST L0XIT
IMPREG page# 0015 next prev
392:
393:
394: PNDG: MOVEI AC1,(DAT)
395: SKIPN AC3,FFLNK
396: JRST RELLST
397: MOVE AC2,SOCK2(AC1)
398: MOVE UUO,SOCK1(AC1)
399: PNDGL: CAMN AC2,IMPLS-1(AC3)
400: CAME UUO,IMPFS-1(AC3)
401: JRST PNDGI
402: MOVE TEM,IMPSTB-1(AC3)
403: TLNE TEM,RFCS!CLSR!CLSS
404: JRST RELLST
405: PNDGN: SOSLE XTTIME(AC1)
406: JRST DPYTIM
407: PUSH P,AC1
408: PUSHJ P,IMPGET
409: JRST [ POP P,AC1
410: JRST DPYTIM]
411: PUSHJ P,SNCLS
412: POP P,AC1
413: JRST RELLST
414:
415: PNDGI: SOJG AC3,PNDGL
416: JRST RELLST
IMPREG page# 0016 next prev
418:
419:
420: ISTRFS: MOVE DAT,IMPSTB-1(AC3)
421: TLNE DAT,RFCS
422: JRST CLRFCW
423: SKIPN LNKTAB-1(AC3)
424: JRST CHKFSK
425: LDB DAT,ELINKP
426: XOR DAT,LNKTAB-1(AC3)
427: TRNN DAT,177400
428: JRST ISTRMP
429: ISTRF3: MOVEI TEM,(AC1)
430: PUSHJ P,IMPGET
431: PUSHJ P,CLKWAIT
432: DPB DSER,OPCDP
433: MOVE AC2,UUO
434: PUSHJ P,PSOCK1
435: MOVE AC2,JDAT
436: PUSHJ P,PSOCK2
437: ILDB AC2,TBP(TEM)
438: DPB AC2,SZLKP
439: MOVE AC2,TDATA(TEM)
440: MOVEM AC2,TDATA(AC1)
441: SETZM TDATA+1(AC1)
442: MOVEI AC2,10
443: DPB AC2,SIZEP
444: MOVEI AC2,12
445: DPB AC2,COUNTP
446: SKIPN AC2,IMPRFQ-1(AC3)
447: JRST ISTRF2
448: MOVSS AC2
449: HRLM AC1,TLINK(AC2)
450: ISTRF1: HRLM AC1,IMPRFQ-1(AC3)
451: HRRZS TLINK(AC1)
452: JRST L0XIT
453:
454: ISTRF2: HRRM AC1,IMPRFQ-1(AC3)
455: JRST ISTRF1
456:
457: CLRFCW: LDB AC2,ELINKP
458: XOR AC2,LNKTAB-1(AC3)
459: TRNE AC2,177400
460: JRST ISTRF3
461: ISTRMP: TLNN DAT,RFCR
462: JRST CHKFSK
463: CAME UUO,IMPFS-1(AC3)
464: JRST ISTRF3
465: TWORFC: AOS N2RFCS
466: IBP TBP(AC1)
467: JRST L0XIT
IMPREG page# 0017 next prev
469:
470:
471: CHKFSK: SKIPL IMPFS-1(AC3)
472: CAMN UUO,IMPFS-1(AC3)
473: JRST CLRFC1
474: JRST ISTRF3
475:
476: CLRFC1: MOVEM UUO,IMPFS-1(AC3)
477: PUSHJ P,SETHLB
478: MOVSI AC2,RFCR
479: PUSHJ P,CSTAT
480: SKIPN DDB,IMPDDB-1(AC3)
481: JRST MAKPN
482: MOVSI AC2,RFCS
483: TDNE AC2,IMPSTB-1(AC3)
484: JRST CLRFC2
485: PUSHJ P,IMPGET
486: PUSHJ P,CLKWAIT
487: PUSHJ P,CLRBLK
488: CAIN DSER,RTS
489: MOVEI TEM,STR
490: CAIN DSER,STR
491: MOVEI TEM,RTS
492: DPB TEM,OPCDP
493: PUSHJ P,MAKRF
494: PUSHJ P,CLKOUT
495: CLRFC2: MOVE IOS,DEVIOS(DDB)
496: TLZE IOS,RFCW
497: PUSHJ P,QRUN
498: MOVEM IOS,DEVIOS(DDB)
499: JRST L0XIT
IMPREG page# 0018 next prev
501:
502:
503: ICLS: PUSHJ P,RD4B
504: MOVE UUO,AC2
505: PUSHJ P,RD4B
506: MOVE JDAT,AC2
507: SKIPN AC3,FFLNK
508: JRST RTCL
509: ICLSL: CAMN JDAT,IMPLS-1(AC3)
510: JRST RCLSRC
511: SOJG AC3,ICLSL
512: RTCL: AOS NSCLSS
513: JRST L0XIT
514:
515: RCLSRC: LDB AC2,ELINKP
516: XOR AC2,LNKTAB-1(AC3)
517: CAMN UUO,IMPFS-1(AC3)
518: TRNE AC2,177400
519: JRST CLSRFQ
520: JRST SRCLSR
521:
522:
523:
524:
525:
526: CLSRFQ: LDB DAT,SRCP
527: PUSHJ P,RTNCLS
528: SETZ TAC1,
529: SKIPN AC1,IMPRFQ-1(AC3)
530: JRST QLEAVE
531: QL1: LDB DSER,SRCP
532: CAIE DAT,(DSER)
533: JRST QLOOP
534: PUSHJ P,GSOCK1
535: CAME AC2,UUO
536: JRST QLOOP
537: PUSHJ P,UNLRFQ
538: PUSHJ P,RELLST
539: QLEAVE: JRST L0XIT
540:
541: QLOOP: MOVE TAC1,AC1
542: HLRZ AC1,TLINK(AC1)
543: JUMPN AC1,QL1
544: JRST QLEAVE
IMPREG page# 0019 next prev
546:
547:
548: SRCLSR: MOVSI AC2,CLSR
549: PUSHJ P,CSTAT
550: SKIPN DDB,IMPDDB-1(AC3)
551: JRST CHCLSS
552: MOVE IOS,DEVIOS(DDB)
553: TLZE IOS,ANYW
554: PUSHJ P,QRUN
555: MOVEM IOS,DEVIOS(DDB)
556: CHCLSS: MOVE AC2,IMPSTB-1(AC3)
557: TLNE AC2,CLSS
558: JRST SRCLWK
559: PUSHJ P,IMPGET
560: PUSHJ P,CLKWAIT
561: PUSHJ P,SNCLS
562: SRCLWK: SKIPN DDB,IMPDDB-1(AC3)
563: CALLZL: PUSHJ P,ZEROLK
564: JRST L0XIT
IMPREG page# 0020 next prev
566:
567:
568: IECO: PUSH P,AC1
569: PUSHJ P,IMPGET
570: PUSHJ P,CLKWAIT
571: MOVE AC2,(P)
572: MOVE AC3,TDATA(AC2)
573: MOVEM AC3,TDATA(AC1)
574: SETZM TDATA+1(AC1)
575: MOVEI AC3,10
576: DPB AC3,SIZEP
577: MOVEI AC3,2
578: DPB AC3,COUNTP
579: ILDB AC3,TBP(AC2)
580: DPB AC3,BYTE2P
581: MOVEI AC3,ERP
582: DPB AC3,OPCDP
583: PUSHJ P,CLKOUT
584: POP P,AC1
585: JRST L0XIT
586:
587:
588:
589: IERP: JRST RILLO
IMPREG page# 0021 next prev
591:
592:
593: IERR: AOS RERRM
594: PUSH P,AC1
595: PUSHJ P,DISDATE
596: PUSH P,TDATA(AC1)
597: PUSHJ P,DISERR
598: [ASCIZ /IMP - WE GOT AN ERROR MESSAGE, #/]
599: DISARG DEC,RERRM
600: [ASCIZ /
601: /]
602: DISARG OCT,<-1(P)>
603: [ASCIZ /
604: /]
605: -1
606: SUB P,[XWD 1,1]
607: POP P,AC1
608: MOVEI TAC1,13
609: PUSH P,TAC1
610: PUSH P,AC1
611: IEPLOP: ILDB TAC,TBP(AC1)
612: PUSHJ P,DISLOC
613: PUSHJ P,DISMES
614: ASCIZ / /
615: MOVE AC1,(P)
616: SOSLE -1(P)
617: JRST IEPLOP
618: PUSHJ P,DISMES
619: ASCIZ /
620: /
621: POP P,AC1
622: SUB P,[XWD 1,1]
623: JRST L0XIT
IMPREG page# 0022 next prev
625:
626:
627: IRRP: JRST L0XIT
IMPREG page# 0023 next prev
629:
630:
631: IRST: AOS NRSETS
632: PUSHJ P,FLCWL0
633: PUSH P,AC1
634: PUSHJ P,IMPGET
635: PUSHJ P,CLKWAIT
636: PUSHJ P,CLRBLK
637: MOVE AC2,(P)
638: MOVE AC3,TDATA(AC2)
639: MOVEM AC3,TDATA(AC1)
640: SETZM TDATA+1(AC1)
641: MOVEI AC3,10
642: DPB AC3,SIZEP
643: MOVEI AC3,1
644: DPB AC3,COUNTP
645: MOVEI AC3,3
646: MOVEM AC3,TWC(AC1)
647: MOVEI AC3,RRP
648: DPB AC3,OPCDP
649: PUSHJ P,CLKOUT
650: POP P,AC1
651: LDB AC2,ELINKP
652: SKIPN AC3,FFLNK
653: JRST L0XIT
654: IRST2: MOVEI TAC,(AC2)
655: XOR TAC,LNKTAB-1(AC3)
656: TRNN TAC,177400
657: JRST IRST1
658: IRST3: SKIPE AC1,IMPRFQ-1(AC3)
659: JRST SCNIRF
660: IRST5: SOJG AC3,IRST2
661: JRST L0XIT
662:
663: IRST1: SKIPE DDB,IMPDDB-1(AC3)
664: JRST IRST4
665: SKIPE AC1,IMPRFQ-1(AC3)
666: PUSHJ P,APNLST
667: PUSHJ P,KILLNK
668: JRST IRST3
669:
670: IRST4: MOVE IOS,DEVIOS(DDB)
671: TLZE IOS,ANYW
672: PUSHJ P,QRUN
673: ORI IOS,RSET!IODERR
674: MOVEM IOS,DEVIOS(DDB)
675: MOVSI AC2,CLSS!CLSR
676: PUSHJ P,CSTAT
677: MOVE AC2,IMPLS-1(AC3)
678: TRNN AC2,1
679: JRST IRST3
680: SETZM BAL(DDB)
681: SETZM MAL(DDB)
682: JRST IRST3
IMPREG page# 0024 next prev
684:
685:
686: SCNIRF: SETZ TAC1,
687: SCNNXR: PUSHJ P,LEGAL
688: JRST [ SETZM IMPRFQ-1(AC3)
689: JRST IRST5]
690: LDB TAC,ELINKP
691: CAIE TAC,(AC2)
692: JRST SCNGNX
693: PUSH P,AC2
694: PUSH P,TLINK(AC1)
695: PUSHJ P,UNLRFQ
696: PUSHJ P,RELLST
697: POP P,AC1
698: HLRZS AC1
699: POP P,AC2
700: JRST SCNCZ
701:
702: SCNGNX: MOVEI TAC1,(AC1)
703: HLRZ AC1,TLINK(AC1)
704: SCNCZ: JUMPN AC1,SCNNXR
705: JRST IRST5
IMPREG page# 0025 next prev
707:
708:
709:
710:
711: ERRREC: SKIPL RECOVER
712: JRST ERRCNT
713: SKIPN AC3,FFLNK
714: JRST ERRL0
715: ERRNXD: SKIPN DDB,IMPDDB-1(AC3)
716: JRST ERRLIN
717: MOVE IOS,DEVIOS(DDB)
718: TRNN IOS,BLOK
719: JRST ERRLIN
720: PUSHJ P,IMPGET
721: PUSHJ P,CLKWAIT
722: SETZM TDATA(AC1)
723: SETZM TDATA+1(AC1)
724: SKIPN AC2,IMPBS-1(AC3)
725: MOVEI AC2,10
726: DPB AC2,SIZEP
727: MOVE AC2,LNKTAB-1(AC3)
728: DPB AC2,ELINKP
729: MOVEI AC2,2
730: MOVEM AC2,TWC(AC1)
731: PUSHJ P,CLKOUT
732: ERRLIN: SOJG AC3,ERRNXD
IMPREG page# 0026 next prev
734:
735:
736: ERRL0: MOVEI AC3,7
737: ERRL0L: SKIPN TEM,L0BLOK(AC3)
738: JRST ERRL0I
739: MOVEI DAT,1
740: SETZ TAC,
741: ERRL0T: TDNN DAT,TEM
742: JRST ERRL0R
743: PUSHJ P,IMPGET
744: PUSHJ P,CLKWAIT
745: SETZM TDATA(AC1)
746: SETZM TDATA+1(AC1)
747: SETZM TDATA+2(AC1)
748: MOVEI TAC1,3
749: MOVEM TAC1,TWC(AC1)
750: MOVEI TAC1,10
751: DPB TAC1,SIZEP
752: MOVEI TAC1,1
753: DPB TAC1,COUNTP
754: MOVEI TAC1,(AC3)
755: LSH TAC1,5
756: ORI TAC1,(TAC)
757: DPB TAC1,SRCP
758: PUSHJ P,QOUT
759: ERRL0R: ADDI TAC,1
760: LSH DAT,1
761: CAIGE TAC,40
762: JRST ERRL0T
763: ERRL0I: SOJGE AC3,ERRL0L
764: MOVEI AC1,4*=60*=60
765: MOVEM AC1,RECOVER
766: POPJ P,
767:
768: ERRCNT: SOSGE RECOVER
769: SETZM RECOVER
770: POPJ P,
IMPREG page# 0027 next prev
772:
773:
774:
775:
776:
777: MAKERB: PUSHJ P,IMPGET
778: POPJ P,
779: PUSHJ P,CLRBLK
780: MOVE AC2,-1(P)
781: LDB AC3,[POINT 16,TDATA(AC2),23]
782: ANDCMI AC3,377
783: DPB AC3,ELINKP
784: MOVEI AC3,10
785: DPB AC3,SIZEP
786: MOVEI AC3,ERR
787: DPB AC3,OPCDP
788: MOVEI AC3,14
789: DPB AC3,COUNTP
790: MOVEI AC3,7
791: MOVEM AC3,TWC(AC1)
792: JRST CPOPJ1
793:
794:
795:
796:
797:
798: CLRBLK: PUSH P,AC2
799: PUSH P,AC3
800: SETZM TDATA(AC1)
801: HRLI AC2,TDATA(AC1)
802: HRRI AC2,TDATA+1(AC1)
803: HRRI AC3,TDATA-1(AC1)
804: ADD AC3,TLEN(AC1)
805: BLT AC2,(AC3)
806: POP P,AC3
807: POP P,AC2
808: POPJ P,
IMPREG page# 0028 next prev
810:
811:
812:
813: KILLNK: SKIPE AC1,IMPRFQ-1(AC3)
814: PUSHJ P,APNLST
815: MOVEI AC2,-1(AC3)
816: PUSH P,DAT
817: SOSE DAT,FFLNK
818: CAIN DAT,(AC2)
819: JRST KILLN1
820: PUSH P,AC2
821: PUSH P,AC3
822: MOVE AC3,LNKTAB(DAT)
823: MOVEM AC3,LNKTAB(AC2)
824: MOVE AC3,IMPDDB(DAT)
825: MOVEM AC3,IMPDDB(AC2)
826: MOVE AC3,IMPLS(DAT)
827: MOVEM AC3,IMPLS(AC2)
828: MOVE AC3,IMPFS(DAT)
829: MOVEM AC3,IMPFS(AC2)
830: MOVE AC3,IMPRFQ(DAT)
831: MOVEM AC3,IMPRFQ(AC2)
832: MOVE AC3,IMPBS(DAT)
833: MOVEM AC3,IMPBS(AC2)
834: MOVE AC3,IMPSTB(DAT)
835: MOVEM AC3,IMPSTB(AC2)
836: POP P,AC3
837: POP P,AC2
838: KILLN1: POP P,DAT
839: POPJ P,
IMPREG page# 0029 next prev
841:
842:
843: POLL: MOVEI AC1,POLTIM
844: MOVEM AC1,POLCNT
845: SKIPE IMPDEAD
846: POPJ P,
847: SOSG HCLSCT
848: PUSHJ P,HCLSS
849: SKIPE IMPECT
850: JRST IERBD
IMPREG page# 0030 next prev
852:
853:
854:
855: HCLSS: MOVEI AC1,HCLSTM
856: MOVEM AC1,HCLSCT
857: HCLSR: SKIPN AC3,FFLNK
858: POPJ P,
859: HCLSL: SKIPE IMPDDB-1(AC3)
860: HCLSI: SOJG AC3,HCLSL
861: JUMPE AC3,CPOPJ
862: MOVE AC1,IMPSTB-1(AC3)
863: TLNE AC1,CLSS
864: TLNE AC1,CLSR
865: JRST HCLSI
866: TLNE AC1,LONCE
867: JRST HCLSZ
868: MOVSI AC1,LONCE
869: ORM AC1,IMPSTB-1(AC3)
870: JRST HCLSI
871:
872: HCLSZ: SKIPE AC1,IMPRFQ-1(AC3)
873: PUSHJ P,APNLST
874: PUSHJ P,KILLNK
875: JRST HCLSR
876:
877:
878:
879:
880: IERBD: SKIPE IMPDEAD
881: POPJ P,
882: SETZM IMPECT
883: SKIPN RECOVER
884: SETOM RECOVER
885: TELCTR(IERBIT,<IMP ERROR BIT CAME UP,>)
886: POPJ P,
IMPREG page# 0031 next prev
888:
889:
890: SNDNOP: MOVEI AC3,4
891: MOVEM AC3,NOPCNT
892: SETOM IMPOACT
893: MOVEI AC3,MAXCNT
894: MOVEM AC3,IMPOCT
895: CONO PI,IMPOFF
896: CONO IMP,STROUT!ODPIEN!IMPCHN
897: DATAO IMP,[BYTE (8) 4]
898: CONO PI,IMPON
899: POPJ P,
IMPREG page# 0032 next prev
IMPREG page# 0033 next prev
902:
903:
904:
905:
906: EFILL: MOVEI DAT,12
907: HRRZI AC2,TDATA+2(AC1)
908: HRLI AC2,(<POINT 8,0,15>)
909: EFILL1: HRRZ AC3,-1(P)
910: ADD AC3,[POINT 8,TDATA+2]
911: EFILL2: ILDB DSER,AC3
912: IDPB DSER,AC2
913: SOJG DAT,EFILL2
914: POPJ P,
915:
916:
917:
918:
919: OFILL: MOVEI DAT,11
920: HRRZI AC2,TDATA+2(AC1)
921: HRLI AC2,(<POINT 8,0,23>)
922: JRST EFILL1
IMPREG page# 0034 next prev
924:
925:
926: CLKWAIT:
927: SETOM IMPCLW
928: PUSHACS
929: MOVEM P,IMPPDP
930: MOVE AC1,[XWD CLKPDL,IMPSAV]
931: BLT AC1,IMPSAV+CLKPLN-1
932: MOVE P,IMPFP
933: POPJ P,
934:
935: CLKWT: PUSHJ P,IMPGET
936: POPJ P,
937: MOVE AC3,[XWD IMPSAV,CLKPDL]
938: BLT AC3,CLKPDL+CLKPLN-1
939: MOVE P,IMPPDP
940: PUSHJ P,IMPREL
941: POPACS
942: SETZM IMPCLW
943: SOS (P)
944: SOS (P)
945: POPJ P,
IMPREG page# 0035 next prev
947:
948:
949:
950: RELLST: HRRZS AC1
951: PUSHJ P,LEGAL
952: POPJ P,
953: PUSH P,TLINK(AC1)
954: PUSHJ P,IMPREL
955: POP P,AC1
956: TRNE AC1,-1
957: JRST RELLST
958: POPJ P,
959:
960:
961:
962:
963: RELBLS: PUSHJ P,LEGAL
964: POPJ P,
965: PUSH P,TLINK(AC1)
966: PUSHJ P,RELLST
967: POP P,AC1
968: HLRZS AC1
969: JUMPN AC1,RELBLS
970: POPJ P,
IMPREG page# 0036 next prev
972:
973:
974:
975:
976: INTCOM: LDB J,PJOBN
977: TDNN AC2,JBTIEN(J)
978: POPJ P,
979: IORM AC2,JBTIRQ(J)
980: SETOM INTREQ(PID)
981: POPJ P,
IMPREG page# 0037 next prev
983:
984:
985:
986: UNLMES: CONO PI,IMPOFF
987: SKIPN AC1,ILIST
988: JRST UNLME1
989: HLRZ AC2,TLINK(AC1)
990: HRRM AC2,ILIST
991: SKIPN AC2
992: SETZM ILIST
993: CONO PI,IMPON
994: HRRZS TLINK(AC1)
995: JRST CPOPJ1
996:
997: UNLME1: CONO PI,IMPON
998: POPJ P,
999:
1000:
1001:
1002: UNLNS: PUSHJ P,UNLMES
1003: JRST UNLERR
1004: POPJ P,
1005:
1006: UNLERR: PUSHJ P,DISMES
1007: [ASCIZ /NO INPUT LIST AT UNLNS
1008: /]
1009: -1
1010: SETOM DISFLAG
1011: PUSHJ P,DISFLUSH
1012: JRST AUTOLOAD
1013:
1014:
1015:
1016: POPMESS:
1017: PUSHJ P,UNLMES
1018: POPJ P,
1019: JRST RELLST
IMPREG page# 0038 next prev
1021:
1022:
1023:
1024:
1025:
1026: CLKOUT: SKIPE IMPDEAD
1027: JRST RELLST
1028: CLKOUD: LDB AC2,TYPEP
1029: JUMPE AC2,CLKOU4
1030: CAIN AC2,5
1031: JRST CLKOU4
1032: JRST QOUT
1033:
1034: CLKOU4: PUSH P,AC3
1035: PUSHJ P,L0PTR
1036: TDNN AC3,L0BLOK(AC2)
1037: JRST CLKOU3
1038: SKIPN AC2,L0CWTL
1039: JRST CLKOU1
1040: MOVSS AC2
1041: HRLM AC1,TLINK(AC2)
1042: CLKOU2: HRLM AC1,L0CWTL
1043: HRRZS TLINK(AC1)
1044: POP P,AC3
1045: POPJ P,
1046:
1047: CLKOU1: HRRM AC1,L0CWTL
1048: JRST CLKOU2
1049:
1050: CLKOU3: ORM AC3,L0BLOK(AC2)
1051: POP P,AC3
1052: JRST QOUT
IMPREG page# 0039 next prev
1054:
1055:
1056:
1057:
1058:
1059:
1060:
1061: COMDDR: SKIPA DDB,[TRNE TEM,1]
1062: COMDDS: MOVE DDB,[TRNN TEM,1]
1063: LDB AC2,SRCP
1064: LSH AC2,=8
1065: ILDB AC3,TBP(AC1)
1066: ORI AC2,(AC3)
1067: SETZ DAT,
1068: SKIPN AC3,FFLNK
1069: POPJ P,
1070: COMDS2: CAMN AC2,LNKTAB-1(AC3)
1071: JRST COMDS1
1072: COMDS3: SOJG AC3,COMDS2
1073: SKIPE AC3,DAT
1074: AOS (P)
1075: POPJ P,
1076:
1077: COMDS1: MOVEI DAT,(AC3)
1078: MOVE TEM,IMPLS-1(AC3)
1079: XCT DDB
1080: JRST COMDS3
1081: AOS (P)
1082: AOS (P)
1083: SKIPE DDB,IMPDDB-1(AC3)
1084: AOS (P)
1085: POPJ P,
IMPREG page# 0040 next prev
1087:
1088:
1089: RD2B: ILDB AC2,TBP(AC1)
1090: LSH AC2,10
1091: ILDB TEM,TBP(AC1)
1092: ORI AC2,(TEM)
1093: POPJ P,
1094:
1095: RD4B: ILDB AC2,TBP(AC1)
1096: REPEAT 3,<
1097: LSH AC2,10
1098: ILDB TEM,TBP(AC1)
1099: ORI AC2,(TEM)
1100: >
1101: POPJ P,
1102:
1103: PSOCK1: DPB AC2,SOK1BP
1104: LSH AC2,-10
1105: DPB AC2,SOK1AP
1106: POPJ P,
1107:
1108: PSOCK2: DPB AC2,SOK2BP
1109: LSH AC2,-10
1110: DPB AC2,SOK2AP
1111: POPJ P,
1112:
1113: GSOCK1: LDB AC2,SOK1AP
1114: LDB TEM,SOK1BP
1115: LSH AC2,10
1116: ORI AC2,(TEM)
1117: POPJ P,
1118:
1119: GSOCK2: LDB AC2,SOK2AP
1120: LDB TEM,SOK2BP
1121: LSH AC2,10
1122: ORI AC2,(TEM)
1123: POPJ P,
IMPREG page# 0041 next prev
1125:
1126:
1127:
1128: RTNCLS: MOVE AC2,TDATA(AC1)
1129: PUSH P,AC1
1130: PUSHJ P,IMPGET
1131: PUSHJ P,CLKWAIT
1132: PUSHJ P,MCLSB
1133: MOVE AC2,JDAT
1134: PUSHJ P,PSOCK1
1135: MOVE AC2,UUO
1136: PUSHJ P,PSOCK2
1137: PUSHJ P,CLKOUT
1138: POP P,AC1
1139: POPJ P,
IMPREG page# 0042 next prev
1141:
1142:
1143:
1144:
1145: MCLSB: MOVEM AC2,TDATA(AC1)
1146: SETZM TDATA+1(AC1)
1147: SETZM TDATA+2(AC1)
1148: SETZM TDATA+3(AC1)
1149: SETZM TDATA+4(AC1)
1150: MOVEI AC2,5
1151: MOVEM AC2,TWC(AC1)
1152: MOVEI AC2,10
1153: DPB AC2,SIZEP
1154: MOVEI AC2,11
1155: DPB AC2,COUNTP
1156: MOVEI AC2,CLS
1157: DPB AC2,OPCDP
1158: POPJ P,
IMPREG page# 0043 next prev
1160:
1161:
1162:
1163:
1164: SNCLS: MOVE AC2,LNKTAB-1(AC3)
1165: ANDI AC2,177400
1166: LSH AC2,14
1167: PUSHJ P,MCLSB
1168: MOVE AC2,IMPLS-1(AC3)
1169: SKIPE DDB,IMPDDB-1(AC3)
1170: TRNN AC2,1
1171: JRST SNCLS1
1172: SETZM BAL(DDB)
1173: SETZM MAL(DDB)
1174: SNCLS1: PUSHJ P,PSOCK1
1175: MOVE AC2,IMPFS-1(AC3)
1176: PUSHJ P,PSOCK2
1177: PUSHJ P,CLKOUT
1178: MOVSI AC2,CLSS
1179: PUSHJ P,CSTAT
1180: POPJ P,
EOF: IMPREG end-of-file. cnt=41